package com.dingding.manager.modules.dirver.dao;

import java.util.List;

import com.dingding.manager.common.dao.Page;
import com.dingding.manager.modules.dirver.dto.ReqAddDriverDTO;
import com.dingding.manager.modules.dirver.dto.ResDriverBasicInfoDTO;
import com.dingding.manager.modules.dirver.dto.RespDetailDriverDTO;
import com.dingding.manager.modules.dirver.dto.RespGetDriverDTO;

/**
 * 
 * @Description: 司机管理业务Dao接口
 * @author haoxiaojun
 * @date 2016年12月3日 下午4:56:41
 * @since V 2.5.7
 */
public interface DriverManagerDao {

	/**
	 * 
	 * @Description: 司机管理业务之修改司机状态
	 * @author haoxiaojun
	 * @param organizationStatus
	 * @param companyId
	 * @return void
	 * @date 2016年12月3日 下午4:58:40
	 * @since V 2.5.7
	 */
	public Boolean modifyDriver(String suId, Integer suvStatus);

	/**
	 * 
	 * @Description: 司机管理业务之列表展示司机
	 * @author haoxiaojun
	 * @param lisencePlate 
	 * @param telPhone 
	 * @param dvName 
	 * @param submitTime 
	 * @return void
	 * @date 2016年12月3日 下午4:58:44
	 * @since V 2.5.7
	 */
	public Page<RespGetDriverDTO> getDriver(Integer start, Integer length, Integer cityId, Integer provice_id,
			Integer companyId, Integer suvStatus, String dvName, String submitTime);

	/**
	 * 
	 * @Description: 司机管理业务之司机资料编辑
	 * @author haoxiaojun
	 * @param specialvehicleaudit
	 * @param ddSpecialUserAuthInfo
	 * @param specialuserinfo
	 * @param specialuservehicleinfo
	 * @return void
	 * @date 2016年12月3日 下午4:58:51
	 * @since V 2.5.7
	 */
	public Boolean editDriver(ReqAddDriverDTO reqAddDriver);

	/**
	 * 
	 * @Description: 司机管理业务之司机详情
	 * @author haoxiaojun
	 * @param suid
	 * @return void
	 * @date 2016年12月3日 下午4:58:57
	 * @since V 2.5.7
	 */
	public RespDetailDriverDTO detailDriver(String suid);

	/**
	 * 
	 * @Description: 根据公司名称获取公司所有司机Id
	 * @author haoxiaojun
	 * @return List<String>
	 * @date 2016年12月8日 下午12:07:57
	 * @since V 2.5.7
	 * @modify by hufan 增加了nameOrPhone模糊查询
	 */
	public List<String> getDriverUserIdsByConditions(List<Integer> organizationIds, String nameOrPhone);

	/**
	 * 
	 * @Title: getSpecialUserAuthInfoByDriverId @Description:
	 * 根据司机id查询司机信息 @param 参数说明 @author hufan @return 返回类型 @throws
	 */
	public ResDriverBasicInfoDTO getResDriverBasicInfoDTOByDriverId(String driverId);
	
	/**
	 * @Description 修改司机的登录状态(1:登录状态  2:退出状态   3:锁定状态)
	 * @author fengshuonan
	 * @date 2017年2月7日 下午12:04:08
	 */
	public boolean setDriverLoginStatus(String userId, int status);

}
